#!/bin/sh
# Script Nautilus — clic droit → Scripts → Envoyer vers Drop.
#
# Se dépose dans ~/.local/share/nautilus/scripts/, en 755. C'est la voie la plus
# sûre sous GNOME : les extensions de menu contextuel changent de forme d'une
# version à l'autre, les scripts non.
#
# Nautilus passe la sélection dans NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, un
# chemin par ligne — et non en arguments, d'où cette boucle de lecture. Les
# chemins contenant un saut de ligne ne sont pas représentables ainsi : c'est
# une limite de Nautilus, pas du script.

set -eu

ENVOYER=$(command -v drop-envoyer || printf '%s' "$HOME/.local/bin/drop-envoyer")

[ -n "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS:-}" ] || exit 0

# Les chemins sont accumulés puis passés en une seule fois : un envoi groupé
# donne une seule notification au lieu d'une par fichier.
#
# La lecture passe par un document en ligne plutôt que par un tube : celui-ci
# ouvrirait un sous-shell dont les arguments accumulés ne ressortiraient pas, et
# il ajoute le saut de ligne final sans lequel le dernier chemin serait perdu.
set --
while IFS= read -r chemin; do
    [ -n "$chemin" ] && set -- "$@" "$chemin"
done <<FIN
$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
FIN

[ $# -eq 0 ] && exit 0

exec "$ENVOYER" "$@"
